<?php
//事件监听器
require_once dirname(__DIR__)."/classes/mysql.class.php";
class BaseListener{
    protected $sql_helper = null;
    protected $context = null;//上下文

    public function __construct(){
        $this -> sql_helper  = new Mysql();
    }

    public function __destruct(){
        if($this -> sql_helper){
            $this -> sql_helper -> __destruct();
        }
    }

    //封装6个最常用的数据库操作函数(减少项目跨平台移植成本)___begin
    //得到查询的第1行，第1列
    protected function get_one_bysql($sqlstr) {
        return $this -> sql_helper -> get_one_bysql($sqlstr);
    }
    //获取记录集
    protected function get_list_bysql($sqlstr){
        return $this -> sql_helper -> get_list_bysql($sqlstr);
    }
    //得到最后插入的indsert_id
    protected function get_insert_id(){
        return $this -> sql_helper -> get_insert_id();
    }
    //执行插入或更新操作
    protected function do_execute($sqlstr){
        return $this -> sql_helper -> do_execute($sqlstr);
    }
    //执行事务操作(INNODB引擎才能支持)
    protected function do_transaction($sqlstr_array){
        return $this -> sql_helper -> do_transaction($sqlstr_array);
    }
    //封装5个最常用的数据库操作函数(减少项目跨平台移植成本)___end

    //事件调度 onEvent
    protected function event_scheduler($event_name, $context){
        $listener_name = substr($event_name, 2) . "Listener";
        require_once(SYS_ROOT_PATH."include/listener/".$listener_name.".php");

        $listener = new $listener_name;
        $listener -> run($context);
    }
}